package top.fengleifeng.question;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import top.fengleifeng.util.Constants;

/**
 * @author : fengleifeng
 * @Package top.fengleifeng.question
 * @Description:
 * @date Date : 2020年11月23日 5:19 下午
 */
public class Num1018可被5整除的二进制前缀 {

    class Solution {

        public List<Boolean> prefixesDivBy5(int[] A) {
            int num = 0;
            List<Boolean> ans = new ArrayList<>();
            for (int index = 0; index < A.length; index++) {
                num = (num * 2 + A[index]) % 5;
                if (num == 0) {
                    ans.add(true);
                } else {
                    ans.add(false);
                }
            }
            return ans;
        }

//        public List<Boolean> prefixesDivBy5(int[] A) {
//            List<Boolean> list = new LinkedList<>();
//            int num = 0;//总数
//            for (int i = 0; i < A.length; i++) {
//                num = num + (int) (A[i] * Math.pow(2, i));
//                if (num % 5 == 0) {
//                    list.add(true);
//                } else {
//                    list.add(false);
//                }
//            }
//            return list;
//        }
    }

    public static void main(String[] args) {
//        int[] ints = new int[]{0, 1, 1};
//        int[] ints = new int[]{0, 1, 1, 1, 1, 1};
        int[] ints = new int[]{1, 1, 0, 0, 0, 1, 0, 0, 1};
        List<Boolean> booleans = new Num1018可被5整除的二进制前缀().new Solution().prefixesDivBy5(ints);
        Constants.pringLinkedListBol(booleans);
        System.out.println();
        System.out.println(Math.pow(2, 6));
    }
}
